#include "leavecommand.h"

#include <sstream>
using std::ostringstream;

#include <Poco/StringTokenizer.h>
using Poco::StringTokenizer;

#include <Poco/DOM/DOMWriter.h>
using Poco::XML::DOMWriter;

#include <Poco/DOM/Node.h>
using Poco::XML::Node;

namespace Commands{
	const string LeaveCommand::NAME = "Leave";

	LeaveCommand::LeaveCommand()
	{}

	LeaveCommand::~LeaveCommand()
	{}

	void LeaveCommand::execute()
	{
		setResult("OK");
	}

	string LeaveCommand::name()
	{
		return string(LeaveCommand::NAME);
	}

	string LeaveCommand::repr(){
		ostringstream out;
		DOMWriter w;
		w.writeNode(out, toXML());
		return out.str();
	}

	Document* LeaveCommand::toXML(Document *)
	{
		Document* doc = new Document();
		doc->appendChild((Node*)doc->createComment("Bye now!"));
		return Command::toXML(doc);
	}

	CommandCreator LeaveCommand::creator(){
		return LeaveCommand::makeCommand;
	}

	Command* LeaveCommand::makeCommand(string r, void*)
	{
		//Until we put something useful in LeaveCommand, leave this commented
		//DOMParser parser;
		//Document* doc = parser.parseString(r);
		return new LeaveCommand();
	}
}

